home *** CD-ROM | disk | FTP | other *** search
- Documentation for the ARexx functions implemented in NComm V3.0
- ===============================================================
-
- Introduction
- ~~~~~~~~~~~~
- You need the programming language ARexx to use NComm's ARexx interface.
- If you don't already have it, either buy it or just forget about it. You
- will probably manage fine with the internal script language, but ARexx
- adds a few things that the internal script language lacks, for example
- numerical variables, arithmetics, string functions etc. Please read the
- ARexx documentation carefully before using NComm's ARexx interface.
-
- NOTE: ARexx is automatically supplied with AmigaDOS 2.0 so don't waste
- any money by purchasing ARexx alone.
-
- ARexx scripts can be started from the menu, from the phonebook (at
- CONNECT), from "Shell" via the RX command or from a standard NComm
- script. You may also Shift-Select an ARexx script when starting NComm.
-
- Port Name
- ~~~~~~~~~
- NComm's port name is 'ncomm' for the first copy of NComm and 'ncomm-x'
- for further copies of NComm (x is 1 or more). So if you wanted to
- send commands to NComm, you would normally start your script-file
- with the following two lines:
-
- /* script name */
- address 'ncomm'
-
- Result codes
- ~~~~~~~~~~~~
- All the ARexx functions in NComm either return result codes in the
- special variable RC (Result Code) or in the string variable 'result'
- ...or both. Remember to check the result codes carefully. If RC is not
- equal to zero, the command was somehow not successful. How serious the
- result code is depends on which functions that returns it.
-
- NOTE: All commands return 20 if user selected "Quit" from NComm
-
- How to read strings
- ~~~~~~~~~~~~~~~~~~~
- If you want to use any of the functions that return string variables,
- you have to add another line to your ARexx script:
-
- options results
-
- Note!
- ~~~~~
- Arexx commands that you send to NComm must be either upper or lower case.
- Please see below for a list of commands. Also take a look at the few ARexx
- scripts that have been included. They especially demonstrate the WAIT and
- INACTIVITY commands in further detail.
-
- Important!
- ~~~~~~~~~~
- Do not run two ARexx scripts simultaneously if both try to fetch input
- from the same serial port. This will cause a loss of data/lines and
- the scripts will not work as expected. For example: If you try to
- start one of the example "rxread" scripts from the NComm menu, you
- will not get any output since they use the 'say()' command for
- displaying the text. However, these scripts loop forever and the
- script will still be running although you don't see the output. If
- you now try to start the same script from a Shell window via the RX
- command (without quitting NComm first), some lines will be missing
- from the output since two scripts now to try fetch data from the same
- serial port... Several of the bugs that have been reported have
- probably been caused by this misunderstanding.
-
- ==========================================================================
-
- ASCSEND
- ~~~~~~~
- This functions sends a text file to the serial port with the menu
- function "ASCII Send".
-
- Arguments: filename to send
-
- Example: ASCSEND "s:startup-sequence"
-
- Returns: 0 if successful
- 1 if file not found or could not be opened
-
- AUTODOWN
- ~~~~~~~~
- This function will turn Zmodem auto-download on or off.
-
- Arguments: ON | OFF
-
- Example: AUTODOWN ON
-
- Returns: 0 if successful
- 1 if missing argument
-
- AUTOUP
- ~~~~~~
- This function will turn Zmodem auto-upload on or off.
-
- Arguments: ON | OFF
-
- Example: AUTOUP ON
-
- Returns: 0 if successful
- 1 if missing argument
-
- AUTOXFER
- ~~~~~~~~
- This function will turn G&R commands on or off.
-
- Arguments: ON | OFF
-
- Example: AUTOXFER ON
-
- Returns: 0 if successful
- 1 if missing argument
-
- BEEP
- ~~~~
- This function beeps the display / makes a beep signal / pops screen
- to front. This all depends on what you have selected in the menu.
-
- Arguments: none
-
- Example: BEEP
-
- This functions is always successful and therefore always returns 0
-
- BREAK
- ~~~~~
- This command sends a break to the serial port.
-
- Arguments: none
-
- Example: BREAK
-
- This functions is always successful and therefore always returns 0
-
- CAPTURE
- ~~~~~~~
- This commands selects the menu function "ASCII Capture". All data
- that is received through the serial port will be added to a file.
-
- Arguments: filename to open for writing
-
- Example: CAPTURE "t:tempcap.txt"
-
- Returns: 0 if successful
- 1 if capture was already on (could not open capture file)
-
- See also: STOPCAPTURE
-
- CD
- ~~
- This command sets the current working directory for the CLI command.
-
- Arguments: directory name
-
- Example: CD "LIBS:"
-
- Returns: 0 if successful
- 1 if directory not found or invalid argument
-
- CHECKCARRIER
- ~~~~~~~~~~~~
- This commands checks for a hardware carrier signal.
-
- Arguments: none
-
- Example: CHECKCARRIER
- IF RC = 0 THEN SAY "GOT CARRIER SIGNAL"
-
- Returns: 0 if carrier signal detected
- 1 if no carrier
-
- CHECKRING
- ~~~~~~~~~
- This command checks for a hardware ring signal.
-
- Arguments: none
-
- Example: CHECKRING
- IF RC = 0 THEN SAY "GOT RING SIGNAL"
-
- Returns: 0 if ring signal detected
- 1 if no ring signal
-
- CLEARBUFFER
- ~~~~~~~~~~~
- This command clears the ring-buffer. The 'Wait' command uses a ring-buffer
- that works on a first-in -> first-out basis (FIFO) to keep up with the
- latest 100 lines of data. The buffer takes up a maximum of 10K when it has
- been totally filled up. Normally the buffer takes up an average of 4-5K.
- You ought to clear the ring-buffer when your ARexx script has finished
- since this will release the memory that has been allocated. This will also
- make NComm run just a little faster... It may be a good idea to also use this
- command before your first 'Wait' command if you want to skip unwanted data
- that might exist in the buffer...
-
- Arguments: none
-
- Example: CLEARBUFFER
-
- This functions is always successful and therefore always returns 0
-
- CLI
- ~~~
- This command executes a CLI command and displays the output (if any)
- on the NComm screen. NOTE: The ARexx "address command" function does
- the same thing but normally causes a lot of burns and crashes. It uses
- the Amiga Execute() function, which has several serious bugs. Among
- other things, Execute() will try to write output to the current CLI
- window even if the CLI window has been closed or never existed. This
- normally results in a GURU. NComm contains a bugfix that makes it
- almost safe to execute commands via Execute() so please use this
- command instead of "address command" if you want to avoid a GURU
- when executing external commands from ARexx.
-
- Arguments: command to send
-
- Example: CLI "DELETE WORK:JRCOMM QUIET ALL" ; ~:-)
-
- Returns: 0 if successful
- 1 if command failed or invalid argument
-
- See also: CD
-
- CONFIG
- ~~~~~~
- This function loads in a new config file.
-
- Arguments: config-file filename
-
- Example: CONFIG "ncomm:ncomm.config"
-
- Returns: 0 if successful
- 1 if file not found or could not be opened
-
- DIAL
- ~~~~
- This function dials one or more entries in the phonebook.
-
- Arguments: one or more board names seperated by pipes (|)
-
- Example: DIAL "rode|media|oslohd"
-
- Returns: 0 if connect
- 1 if no connect or entry not found
-
- DIALNUMBER
- ~~~~~~~~~~
- This function dials one or more numbers.
-
- Arguments: one or more numbers seperated by pipes (|)
-
- Example: DIALNUMBER "22380949|22687176"
-
- Returns: 0 if connect
- 1 if no connect
-
- DOWNLOAD
- ~~~~~~~~
- This function selects the download function from the menu.
-
- Arguments: file to open for writing or "foobar" if protocol does
- not need a filename.
-
- Example: DOWNLOAD "ram:rtfm.lzh"
-
- This function always returns 0 even if download failed.
-
- See also: SETPROTO
-
- DTENTHS
- ~~~~~~~
- This function waits for the specified number of 1/10th seconds. NOTE: This
- command ties up the system. The best thing is to use the ARexx timer functions
- for this purpose since you may then continue to use NComm while waiting. Only
- use this command for small delays or when this accuracy is needed. If you
- want a long delay, use the ARexx Time() function.
-
- Arguments: number of 1/10th seconds to wait
-
- Example: DTENTHS 10 /* wait for one second */
-
- Returns: 0 if successful
- 1 if no argument
-
- FILEREQ
- ~~~~~~~
- This function opens up the reqtools.library filerequester.
-
- Arguments: the directory that should be displayed
-
- Example: FILEREQ "ncomm:"
- IF RC = 0 THEN SAY RESULT
-
- Returns: 0 if successful, variable 'result' contains the path/filename
- 1 if no argument or if filerequester was already in use
-
- GETBOARDNAME
- ~~~~~~~~~~~~
- This function fetches the current board name.
-
- Arguments: none
-
- Example: GETBOARDNAME
- SAY RESULT
-
- This functions is always successful and therefore always returns 0
-
- GETBOARDNUM
- ~~~~~~~~~~~
- This function fetches the current board phone number.
-
- Arguments: none
-
- Example: GETBOARDNUM
- SAY RESULT
-
- This functions is always successful and therefore always returns 0
-
- GETDATE
- ~~~~~~~
- This function fetches the NComm creation date.
-
- Arguments: none
-
- Example: GETDATE
- SAY RESULT
-
- This functions is always successful and therefore always returns 0
-
- GETDLDIR
- ~~~~~~~~
- This function fetches the current download dir.
-
- Arguments: none
-
- Example: GETDLDIR
- SAY RESULT
-
- This functions is always successful and therefore always returns 0
-
- GETLOGTIME
- ~~~~~~~~~~
- This function fetches the current logon time.
-
- Arguments: none
-
- Example: GETLOGTIME
- SAY RESULT
-
- This functions is always successful and therefore always returns 0
-
- GETULDIR
- ~~~~~~~~
- This function fetches the current upload dir.
-
- Arguments: none
-
- Example: GETULDIR
- SAY RESULT
-
- This functions is always successful and therefore always returns 0
-
- GETVERSION
- ~~~~~~~~~~
- This function fetches the NComm version number.
-
- Arguments: none
-
- Example: GETVERSION
- SAY RESULT
-
- This functions is always successful and therefore always returns 0
-
- HANGUP
- ~~~~~~
- This function hangs up the phone by either lowering DTR or sending
- the hangup string to the modem.
-
- Arguments: none
-
- Example: HANGUP
-
- This functions is always successful and therefore always returns 0
-
- INACTIVITY
- ~~~~~~~~~~
- This command specifies the inactivity timeout for the 'Wait' command.
- If nothing has been received through the serial port in the specified
- number of seconds, the 'Wait' command will return with the last line
- that was received.
-
- Arguments: number of seconds that can elapse without receiving data
- through the serial port or 0 if you want to disable the
- inactivity timeout
-
- Example: INACTIVITY 2 /* Wait command will return after two seconds
- of inactivity */
-
- This functions is always successful and therefore always returns 0
-
- LOADKEYS
- ~~~~~~~~
- This function loads in a new set of macrokeys.
-
- Arguments: macro-file filename
-
- Example: LOADKEYS "ncomm:ncomm.keys"
-
- Returns: 0 if successful
- 1 if file not found or could not be opened
-
- LOADPHONE
- ~~~~~~~~~
- This function loads in a new phonebook.
-
- Arguments: phonebook filename
-
- Example: LOADPHONE "ncomm:ncomm.phone"
-
- Returns: 0 if successful
- 1 if file not found or could not be opened
-
- MENUSELECT
- ~~~~~~~~~~
- This function selects a function from the menu
-
- Arguments: menuname,itemnumber[,subitemnumber]
-
- Example: MENUSELECT "TRANSFER,6,2" /* Select Kermit CD from the menu */
-
- Returns: 0 if successful
- 1 if invalid argument or too few arguments
-
- MESSAGE
- ~~~~~~~
- This function displays a message in the NComm window. Nothing is sent
- through the serial port.
-
- Arguments: text to display in the window
-
- Example: MESSAGE "yoohoo"
-
- Returns: 0 if successful
- 1 if missing argument
-
- MSGSEND
- ~~~~~~~
- This functions sends a message to the serial port with the menu
- function "Message Send".
-
- Arguments: message filename to send
-
- Example: MSGSEND "ram:mymsg.txt"
-
- Returns: 0 if successful
- 1 if file not found or could not be opened
-
- NCOMMTOFRONT
- ~~~~~~~~~~~~
- This function brings the current NComm screen to front.
-
- Arguments: none
-
- Example: NCOMMTOFRONT
-
- This functions is always successful and therefore always returns 0
-
- PADLINES
- ~~~~~~~~
- This function will turn padding of blank lines on or off.
-
- Arguments: ON | OFF
-
- Example: PADLINES ON /* turn padding on */
-
- Returns: 0 if successful
- 1 if missing argument
-
- PALETTE
- ~~~~~~~
- This function opens up the palette requester.
-
- Arguments: none
-
- Example: PALETTE /* open palette */
-
- This function is always successful and therefore always returns 0.
-
- PRINTER
- ~~~~~~~
- This function will turn the printer function on or off.
-
- Arguments: ON | OFF
-
- Example: PRINTER ON /* turn on output to the printer */
-
- Returns: 0 if successful
- 1 if missing argument
-
- REDIAL
- ~~~~~~
- This function turns redial on or off.
-
- Arguments: ON | OFF
-
- Example: REDIAL ON /* turn redial on */
-
- Returns: 0 if successful
- 1 if missing argument
-
- REQUEST
- ~~~~~~~
- This function toggles system and NComm-requesters. You probably want
- to turn off requesters if the script is run without human assistance.
- It will then not be preferrable that "disk full" requesters etc. show up
- on screen and interrupts the script. NComm will automatically overwrite
- existing files instead of asking if requesters have been turned off.
-
- Arguments: ON | OFF
-
- Example: REQUEST OFF /* Turn off requesters */
-
- Returns: 0 if successful
- 1 if missing argument
-
- RESUME
- ~~~~~~
- This function will turn Zmodem resume on or off.
-
- Arguments: ON | OFF
-
- Example: RESUME ON
-
- Returns: 0 if successful
- 1 if missing argument
-
- SEND
- ~~~~
- This function sends the supplied text to the serial port and also
- translates the output in case they contain control-characters,
- C-notation etc. Text will also be displayed on screen if half-
- duplex has been selected.
-
- Arguments: the text that should be sent to the serial port
-
- Example: SEND "\p\n^K" /* Send password stored in phonebook
- followed by linefeed and a Control-K */
-
- Returns: 0 if successful
- 1 if missing argument
-
- SETBAUD
- ~~~~~~~
- This function changes the current baud-rate.
-
- Arguments: new baud rate
-
- Example: SETBAUD "2400"
-
- Returns: 0 if successful
- 1 if invalid or missing argument
-
- SETCHARSET
- ~~~~~~~~~~
- This function changes the current character set.
-
- Arguments: new character set
-
- Example: SETCHARSET "IBN"
-
- Returns: 0 if successful
- 1 if invalid or missing argument
-
- SETLENGTH
- ~~~~~~~~~
- This function changes the current data length.
-
- Arguments: new data length
-
- Example: SETLENGTH "8" /* 8 data bits */
-
- Returns: 0 if successful
- 1 if invalid or missing argument
-
- SETPARITY
- ~~~~~~~~~
- This function changes the current parity.
-
- Arguments: new parity
-
- Example: SETPARITY "N" /* No parity */
-
- Returns: 0 if successful
- 1 if invalid or missing argument
-
- SETPROTO
- ~~~~~~~~
- This function changes the current transfer protocol.
-
- Arguments: new transfer protocol
-
- Example: SETPROTO "Z" /* Select the Zmodem protocol */
-
- X == Xmodem, Y == Ymodem, B == Ymodem-B, G == Ymodem-G, Z == Zmodem,
- K == Kermit, E == External XPR (as defined in config file),
- I == Bimodem, P == BModem Plus, J == Jmodem, Q == QuickB,
- V == VMS, U == Uue-Ascii
-
- Returns: 0 if successful
- 1 if invalid or missing argument
-
- SETSTOPBITS
- ~~~~~~~~~~~
- This function changes the current number of stop-bits.
-
- Arguments: new number of stop-bits
-
- Example: SETSTOPBITS "2" /* Two stop-bits */
-
- Returns: 0 if successful
- 1 if invalid or missing argument
-
- SIMPLEREQ
- ~~~~~~~~~
- This function displays a simple text requester.
-
- Arguments: the text to display
-
- Example: SIMPLEREQ "Could not load phonebook"
-
- Returns: 0 if successful
- 1 if missing argument
-
- SPAWN
- ~~~~~
- This function sends an asynchronous ARexx command. This function is
- supposed to be used for running macros in parallel but I've never
- actually tried this. Use it with care.
-
- Arguments: the command to send
-
- Example: SPAWN "SPAWN" /* :-) */
-
- This functions is always successful and therefore always returns 0
-
- STOPCAPTURE
- ~~~~~~~~~~~
- This function stops ASCII Capture.
-
- Arguments: none
-
- Example: CAPTURE "RAM:file.txt"
- WAIT "hello"
- STOPCAPTURE
-
- Returns: 0 if successful
- 1 if no capture to close
-
- STRINGREQ
- ~~~~~~~~~
- This function opens up the reqtools.library stringrequester.
-
- Arguments: the default stringrequester title
-
- Example: STRINGREQ "Enter your name"
- IF RC = 0 THEN SIMPLEREQ "HELLO "result"!"
-
- Returns: 0 if successful, variable 'result' contains string that was entered
- 1 if no argument or if stringrequester was already in use
-
- TWOGADREQ
- ~~~~~~~~~
- This function opens up the reqtools.library two-gadget requester.
-
- Arguments: the default two-gadget requester question
-
- Example: TWOGADREQ "Really quit NComm?"
- IF RC = 0 THEN QUIT
-
- Returns: 0 if user responded with 'Yes'
- 1 if user responded with 'No'
-
- UPLOAD
- ~~~~~~
- This function selects the upload function from the menu.
-
- Arguments: file to send or "foobar" if protocol does not need a filename.
-
- Example: UPLOAD "ram:rtfm.lzh"
-
- Returns: 0 if successful
- 1 if file not found or could not be opened
-
- See also: SETPROTO
-
- WAIT
- ~~~~
- This is the most powerful ARexx function currently implemented. It
- waits for text from the serial-port. If no argument is specified
- it will wait for "anything". You may also specify a string to wait
- for or '0A'X if you want to wait for the next line. This function
- always returns the current line.
-
- Note: The string is not case sensitive.
-
- Arguments: ['0A'X | string]
-
- Example: WAIT /* Wait for anything */
- WAIT '0A'X /* Wait for next line */
- WAIT string /* Wait for string */
-
- Function returns 0 if command ok, 1 if timed out by inactivity command
-
- See also: INACTIVITY, CLEARBUFFER
-
- QUIT
- ~~~~
- This function sets the exit flag, i.e quits NComm.
-
- Arguments: none
-
- Example: QUIT
-
- This functions is always successful and therefore always returns 0
-